Transform coding is a compression technique often used in digital media compression systems. Uncompressed digital media, such as an audio or video signal is typically represented as a stream of amplitude samples of a signal taken at regular time intervals. For example, a typical format for audio on compact disks consists of a stream of sixteen-bit samples per channel of the audio (e.g., the original analog audio signal from a microphone) captured at a rate of 44.1 KHz. Each sample is a sixteen-bit number representing the amplitude of the audio signal at the time of capture. Other digital media systems may use various different amplitude and time resolutions of signal sampling.
Uncompressed digital media can consume considerable storage and transmission capacity. Transform coding reduces the size of digital media by transforming the time-domain representation of the digital media into a frequency-domain (or other like transform domain) representation, and then reducing resolution of certain generally less perceptible frequency components of the frequency-domain representation. This generally produces much less perceptible degradation of the signal compared to reducing amplitude or time resolution of digital media in the time domain.
More specifically, a typical audio transform coding technique divides the uncompressed digital audio's stream of time-samples into fixed-size subsets or blocks, each block possibly overlapping with other blocks. A linear transform that does time-frequency analysis is applied to each block, which converts the time interval audio samples within the block to a set of frequency (or transform) coefficients generally representing the strength of the audio signal in corresponding frequency bands over the block interval. For compression, the transform coefficients may be selectively quantized (i.e., reduced in resolution, such as by dropping least significant bits of the coefficient values or otherwise mapping values in a higher resolution number set to a lower resolution), and also entropy or variable-length coded into a compressed audio data stream. At decoding, the transform coefficients will inversely transform to nearly reconstruct the original amplitude/time sampled audio signal.
Many audio compression systems utilize the Modulated Lapped Transform (MLT, also known as Modified Discrete Cosine Transform or MDCT) to perform the time-frequency analysis in audio transform coding. MLT reduces blocking artifacts introduced into the reconstructed audio signal by quantization. More particularly, when non-overlapping blocks are independently transform coded, quantization errors will produce discontinuities in the signal at the block boundaries upon reconstruction of the audio signal at the decoder.
One problem in audio coding is commonly referred to as “pre-echo.” Pre-echo occurs when the audio undergoes a sudden change (referred to as a “changing signal characteristic”). For example, a changing signal characteristic such as a transient. In transform coding, particular frequency coefficients commonly are quantized (i.e., reduced in resolution). When the transform coefficients are later inverse-transformed to reproduce the audio signal, this quantization introduces quantization noise that is spread over the entire block in the time domain. This inherently causes rather uniform smearing of noise within the coding frame. The noise, which generally is tolerable for some part of the frame, can be audible and disastrous to auditory quality during portions of the frame where the masking level is low. In practice, this effect shows up most prominently when a signal has a sharp attack immediately following a region of low energy, hence the term “pre-echo.” “Post-echo” is a changing signal characteristic that occurs when the signal transition from high to low energy is less of a problem to perceptible auditory quality due to a property of the human auditory system.
Thus, what is needed is a system that addresses the pre-echo effect by reducing the smearing of quantization noise over a large signal frame.